package com.wel.onlineshopping.service;

import com.wel.onlineshopping.model.Cart;
import com.wel.onlineshopping.model.Product;
import com.wel.onlineshopping.repository.CartRepository;
import com.wel.onlineshopping.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class CartService {
    @Autowired
    private CartRepository cartRepository;

    @Autowired
    private ProductRepository productRepository;

    // 获取所有购物车条目
    public List<Cart> getAllCartItems() {
        return cartRepository.findAll();
    }

    // 根据购物车条目ID获取条目
    public Cart getCartItemById(Long id) {
        return cartRepository.findById(id).orElse(null);
    }

    // 添加商品到购物车
    public Cart addProductToCart(Long productId, int quantity) {
        Optional<Product> product = productRepository.findById(productId);
        if (product.isPresent()) {
            Cart cartItem = new Cart();
            cartItem.setProduct(product.get());
            cartItem.setQuantity(quantity);
            cartItem.setPrice(product.get().getPrice() * quantity);
            return cartRepository.save(cartItem);
        }
        return null; // 商品不存在时返回 null
    }

    // 更新购物车条目
    public Cart updateCartItem(Long cartItemId, int quantity) {
        return cartRepository.findById(cartItemId).map(cartItem -> {
            cartItem.setQuantity(quantity);
            cartItem.setPrice(cartItem.getProduct().getPrice() * quantity);
            return cartRepository.save(cartItem);
        }).orElse(null);
    }

    // 删除购物车条目
    public void removeCartItem(Long cartItemId) {
        cartRepository.deleteById(cartItemId);
    }
}
